package br.com.hmm.mb;

import javax.faces.component.UIData;

import br.com.hmm.businesslogic.SocioService;
import br.com.hmm.entidade.Conta;
import br.com.hmm.entidade.Socio;

public class ManterSocioBean extends GenericoBean{
	
	private Socio socio;
	
	private Conta conta;
	
	private Socio socioSelecionado;
	
	private UIData tblSocios;
	
	public ManterSocioBean(){
		socio = new Socio();
		conta = new Conta();
	}
	
	public Socio getSocio() {
		return socio;
	}

	public void setSocio(Socio socio) {
		this.socio = socio;
	}

	public Conta getConta() {
		return conta;
	}

	public void setConta(Conta conta) {
		this.conta = conta;
	}

	public Socio getSocioSelecionado() {
		return socioSelecionado;
	}

	public void setSocioSelecionado(Socio socioSelecionado) {
		this.socioSelecionado = socioSelecionado;
	}
	
	public UIData getTblSocios() {
		return tblSocios;
	}

	public void setTblSocios(UIData tblSocios) {
		this.tblSocios = tblSocios;
	}

	public String gravar(){
		try{
			if(SocioService.inserir(socio,conta) == true){
				ManterContaBean mBean = (ManterContaBean)  getBean("contaBean");
				mBean.listarSociosConta();
				adicionarMensagem("Sócio cadastrado com sucesso.");
			}else{
				adicionarMensagemErro("Não foi possível cadastrar o sócio. Motivo: O CPF informado já existe em nossa base de dados.");
			}
		}catch (Exception e) {
			adicionarMensagemErro("Não foi possível cadastrar o sócio. " + e.getLocalizedMessage());
		}
		return "goDetalhesConta";
	}
	
	
	public String delete(){
		try{
			socioSelecionado = (Socio) tblSocios.getRowData();
			if(SocioService.delete(socioSelecionado) == true){
				ManterContaBean mBean = (ManterContaBean)  getBean("contaBean");
				mBean.getListSociosConta().remove(tblSocios.getRowIndex());
				mBean.listarSociosConta();
				adicionarMensagem("Sócio removido com sucesso");
			}
		}catch (Exception e) {
			adicionarMensagemErro("Não foi possível remover o sócio. " + e.getLocalizedMessage());
		}
		return "goDetalhesConta";
	}
	
	public String atualizar(){
		try{
			if(SocioService.update(socioSelecionado) == true){
				ManterContaBean mBean = (ManterContaBean)  getBean("contaBean");
				mBean.listarSociosConta();
				adicionarMensagem("Dados do sócio alterados com sucesso.");
			}
		}catch (Exception e) {
			adicionarMensagemErro("Não foi possível alterar os dados do sócio. " + e.getLocalizedMessage());
		}
		
		return "goDetalhesConta";
	}
	
	public String edicaoSocio(){
		try{
			socioSelecionado = (Socio) tblSocios.getRowData();			
		}catch(Exception e){
			
		}
		return "goEdicaoSocio";
	}
	
	public String novoSocio(){
		socio = new Socio();
		return "goCadSocio";
	}
	
	public String voltar(){
		return "goDetalhesConta";
	}
	
	

}
